<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//为了便于操作基本类型值，ECMAScript 还提供了 3 个特殊的引用类型：Boolean、Number 和 String
			//每当读取一个基本类型值的时候，后台就会创建一个对应的基本包装类型的对象，从而让我们能够调用一些方法来操作这些数据。
			      
            //基本类型值不是对象，因而从逻辑上讲它们不应该有方法（尽管如我们所愿，它们确实有方法）。
                    var s1 = 'some text';
                    var s2 = s1.substring(2);
            //当第二行代码访问 s1 时，访问过程处于一种读取模式，也就是要从内存中读取这个字符串的值。而在读取模式中访问字符串时，后台都会自动完成下列处理。
            //(1)创建String类型的一个实例
            //(2)在实例上调用指定的方法
            //(3)销毁这个实例
            
            //引用类型与基本包装类型的主要区别就是对象的生存期。使用 new 操作符创建的引用类型的实例，
            //在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象，则只存在于一行代码的执行瞬间，然后立即被销毁。
            //这意味着我们不能在运行时为基本类型值添加属性和方法。
                    var s1 = "some text"; 
					s1.color = "red"; 
					alert(s1.color); //undefined 
					
            //5.6.1 Boolean类型
            //5.6.2 Number类型
                  //toFixed()方法会按照指定的小数位返回数值的字符串表示
                  //toExponential()方法格式化数值，该方法返回以指数表示法（也称 e 表示法）表示的数值的字符串形式。
                  //toPrecision()方法可能会返回固定大小（fixed）格式，也可能返回指数（exponential）格式；具体规则是看哪种格式最合适。
            //5.6.3 String类型
                //1.字符方法
                    //两个用于访问字符串中特定字符的方法是：charAt()和 charCodeAt()。都接收一个参数，即基于0的字符位置。
                    //charAt()方法以单字符字符串的形式返回给定位置的那个字符（ECMAScript 中没有字符类型）。
                            var s = 'lishan';
							var s1 = s.charAt(2);
							console.log(s1);//s
				    //charCodeAt()方法返回给定位置的那个字符的字符编码。
				            var s = 'lishan';
							var s1 = s.charCodeAt(2);
							console.log(s1);//115
					//ES5可以使用方括号加数字索引来访问字符串中的字符。
					        var s = 'lishan';
					        s[1];//i
			    //2.字符串操作方法
			        //concat()方法，用于将一个或多个字符串拼接起来，返回拼接得到的新字符串
			        //slice()方法，slice() 方法可提取字符串的某个部分，并以新的字符串返回被提取的部分。使用 start 和 end 参数来指定字符串提取的部分。
			        //substring()方法，提取字符串中两个指定的索引号之间的字符。
			        //substr() 方法可在字符串中抽取从 开始 下标开始的指定数目的字符。
			    //3.字符串位置方法
			        //indexOf()
			        //lastIndexOf()
			    //4.trim()方法，创建一个字符串的副本，删除前置及后缀的所有空格，然后返回结果。
			    //5.字符串大小写转换方法
			      //toLowerCase() 转小写
			      //toLocaleLowerCase() 转小写
			      //toUpperCase() 转大写
			      //toLocaleUpperCase() 转大写
			    //6.字符串的模式匹配方法
			      //match()，该方法方法只接受一个参数，要么是一个正则表达式，要么是一个 RegExp 对象。返回一个数组
			      //search()，该方法用于检索字符串中指定的子字符串，或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串，则返回 -1。
			      //replace()，该方法用于在字符串中用一些字符替换另一些字符，或替换一个与正则表达式匹配的子串。
			      //split()，该方法可以基于指定的分隔符将一个字符串分割成多个子字符串，并将结果放在一个数组中。
		</script>
	</body>
</html>
